#include <stdio.h>
void sort1(int data[],int length)
{
	for(int i=0;i<length-1;i++)
	{
		for(int j=0;j<length-i-1;j++)
		{
			if(data[j]>data[j+1])
			{
				data[j] = data[j]^data[j + 1];
				data[j+1] = data[j]^data[j + 1];
				data[j] = data[j]^data[j + 1];
			}
		}
	}
}
void sort2(int data[],int length)
{
	int minIndex = 0;
	for(int i=0;i<length - 1;i++)
	{
		minIndex=i;
		for(int j=i+1;j<length;j++)
		{
			if(data[minIndex]>data[j])
			{
				minIndex = j;
			}
		}
		if(minIndex!=i)
		{
			data[i]=data[i]^data[minIndex];
			data[minIndex]=data[i]^data[minIndex];
			data[i]=data[i]^data[minIndex];
		}
	}
}
void print_array(int data[],int length)
{
	for(int i=0;i<length;i++)
	{
		printf("%d ",data[i]);
	}
	printf("\n");
}
void process(int data[],void (*p)(int arr[],int len),int leng)
{
	p(data,leng);
	print_array(data,leng);
}
int main(void)
{
	int arr[] = {11,22,1,88,66};
	int arr_length = sizeof(arr)/sizeof(int);
	void (*sort_func)(int data_arr[],int length) = sort2;
	process(arr,sort_func,arr_length);
	return 0;
}
